package com.zhaopin.theswordreferstooffer;

import java.util.Arrays;

/**
 * @author yin.peide
 * @date 2021-06-29 17:36
 * 面试题44：扑克牌的顺子
 * <p>
 * 解法： 三步走： 第一步排序，第二步看数据中0的个数，不能超过2，第三步：看数据中最大值减去最小值要小于等于4才可以 就算满足了
 */
public class Offer44 {
    public static void main(String[] args) {

    }

    public boolean isStraight(int[] nums) {
        //先对数组进行排序
        Arrays.sort(nums);
        //记录大小王的数量
        int zero = 0;
        for (int i = 0; i < 5; i++) {
            //统计大小王的数量
            if (nums[i] == 0) {
                zero++;
                continue;
            }
            //如果不是大小王，不能有重复的
            if (i != 0 && nums[i] == nums[i - 1]) {
                return false;
            }
        }
        //需要判断下不能有三个或者以上的0 TODO

        //最大牌和最小牌的差值小于等于4（这里zero是大小王是数量，
        // nums[zero]表示排序后第一个非大小王的牌）
        return nums[nums.length - 1] - nums[zero] <= 4;
    }

}
